From 73167306c72d2fde1c39b1cb35314aa327cfaff9 Mon Sep 17 00:00:00 2001 From: "iap10@freefall.cl.cam.ac.uk" Date: Thu, 8 Sep 2005 01:00:04 +0000 Subject: [PATCH] Yet more PAE fixes, this time in the paravirt drivers. Signed-off-by: ian@xensource.com --- linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c | 8 ++++---- linux-2.6-xen-sparse/drivers/xen/netback/netback.c | 2 +- linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c index a507f66d93..8226222db4 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c @@ -182,7 +182,7 @@ int blkif_ioctl(struct inode *inode, struct file *filep, static int blkif_queue_request(struct request *req) { struct blkfront_info *info = req->rq_disk->private_data; - unsigned long buffer_ma; + unsigned long buffer_mfn; blkif_request_t *ring_req; struct bio *bio; struct bio_vec *bvec; @@ -221,7 +221,7 @@ static int blkif_queue_request(struct request *req) bio_for_each_segment (bvec, bio, idx) { BUG_ON(ring_req->nr_segments == BLKIF_MAX_SEGMENTS_PER_REQUEST); - buffer_ma = page_to_phys(bvec->bv_page); + buffer_mfn = page_to_phys(bvec->bv_page) >> PAGE_SHIFT; fsect = bvec->bv_offset >> 9; lsect = fsect + (bvec->bv_len >> 9) - 1; /* install a grant reference. */ @@ -231,11 +231,11 @@ static int blkif_queue_request(struct request *req) gnttab_grant_foreign_access_ref( ref, info->backend_id, - buffer_ma >> PAGE_SHIFT, + buffer_mfn, rq_data_dir(req) ); info->shadow[id].frame[ring_req->nr_segments] = - buffer_ma >> PAGE_SHIFT; + buffer_mfn; ring_req->frame_and_sects[ring_req->nr_segments] = blkif_fas_from_gref(ref, fsect, lsect); diff --git a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c index 32ceb5f0b9..40eac7b491 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c @@ -297,7 +297,7 @@ static void net_rx_action(unsigned long unused) mmuext->mfn = old_mfn; mmuext++; #endif - mmu->ptr = (new_mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; + mmu->ptr = ((unsigned long long)new_mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; mmu->val = __pa(vdata) >> PAGE_SHIFT; mmu++; diff --git a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c index 45755083de..e31434ac12 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c @@ -618,7 +618,7 @@ static int netif_poll(struct net_device *dev, int *pbudget) /* Remap the page. */ #ifdef CONFIG_XEN_NETDEV_GRANT - mmu->ptr = mfn << PAGE_SHIFT | MMU_MACHPHYS_UPDATE; + mmu->ptr = ((unsigned long long)mfn << PAGE_SHIFT) | MMU_MACHPHYS_UPDATE; #else mmu->ptr = (rx->addr & PAGE_MASK) | MMU_MACHPHYS_UPDATE; #endif -- 2.30.2